/etc/postfix/main.cf
# Приветствие smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # TLS parameters # сертификаты для безопасного соединения http://sanych.nnov.ru/?q=node/265 smtpd_tls_cert_file=/etc/postfix/smtpd.cert smtpd_tls_key_file=/etc/postfix/smtpd.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. # настройки для внутренней почты myhostname = web4 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = web4.mydomain.ru, web4, localhost.localdomain, localhost relayhost = mynetworks = 127.0.0.0/8 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all # настройки для виртуальной почты # домены virtual_mailbox_domains = domain.ru # карта виртуальных почтовых ящиков virtual_mailbox_maps = hash:/etc/postfix/vmailbox # ну это для безопасности, а т.к. у нас все владельцы ящиков с одним uid - необязательная опция virtual_minimum_uid = 1000 # uid и gid владельца почты virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 # карта алиасов virtual_alias_maps = hash:/etc/postfix/virtual # ограничение размера ящиков (200 Мб) virtual_mailbox_limit = 200000000 # транспорт (MDA) доставки почты virtual_transport = maildrop # это для того чтобы сообщения с несколькими адресатами доставлялись maildrop_destination_recipient_limit = 1 relay_domains = $mydestination # sasl авторизация smtpd_sasl_auth_enable = yes # для кривых виндовых клиентов broken_sasl_auth_clients = yes # от спамеров smtpd_helo_required = yes disable_vrfy_command = yes strict_rfc821_envelopes = yes invalid_hostname_reject_code = 554 multi_recipient_bounce_reject_code = 554 non_fqdn_reject_code = 554 strict_rfc821_envelopes = yes invalid_hostname_reject_code = 554 multi_recipient_bounce_reject_code = 554 non_fqdn_reject_code = 554 relay_domains_reject_code = 554 unknown_address_reject_code = 554 unknown_client_reject_code = 554 unknown_hostname_reject_code = 554 unknown_local_recipient_reject_code = 554 unknown_relay_recipient_reject_code = 554 unknown_sender_reject_code = 554 unknown_virtual_alias_reject_code = 554 unknown_virtual_mailbox_reject_code = 554 unverified_recipient_reject_code = 554 unverified_sender_reject_code = 554 home_mailbox = Maildir/ mailbox_command = # цепочка для проверки кому можно ;) smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_invalid_hostname, reject_unknown_recipient_domain, reject_unauth_pipelining, reject_unauth_destination, reject_rbl_client multi.uribl.com, reject_rbl_client dsn.rfc-ignorant.org, reject_rbl_client dul.dnsbl.sorbs.net, reject_rbl_client list.dsbl.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.sorbs.net, reject_rbl_client cbl.abuseat.org, reject_rbl_client ix.dnsbl.manitu.net, reject_rbl_client combined.rbl.msrbl.net, reject_rbl_client rabl.nuclearelephant.com, permit
Возможно некоторые вещи в данном конфиге избыточны - остались от старого конфига, лень вспоминать что там к чему.
Транспорт maildrop введен вместо virtual для того чтоб приходящая почта сразу раскладывалась в майлдиры в соответствии с /etc/courier/userdb.
Хорошо б еще авторизация проходила через эту же базу, однако я такой возможности не нашел. Поэтому авторизовать будем через sasldb.
Теперь подправим /etc/postfix/master.cf
maildrop unix - n n - - pipe flags=DRhu user=virtual argv=/usr/bin/maildrop -w 90 -d ${recipient}
Здесь мы поменяли пользователя и ввели напоминание при заполнении ящика на 90%.
Добавляем карты (maps):
в /etc/postfix/vmailbox кладем список ящиков виртуального домена:
test@domain.ru test1@domain.ru
в /etc/postfix/virtual кладем список алиасов виртуального домена:
postmaster@domain.ru postmaster
затем создаем бинарный мапы (после всякого редактирования надо делать!!!):
postmap /etc/postfix/vmailbox postmap /etc/postfix/virtual
Теперь настроим sasldb. В /etc/default/saslauthd меняем строки:
# чтоб автоматом стартовало START=yes # чтоб пользовало базу данных sasldb MECHANISMS="sasldb" # чтоб работало в чруте постфикса OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
Ну и великое колдунство чтоб авторизация проходила:
# это из /usr/share/doc/sasl2-bin/README.Debian.gz dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd adduser postfix sasl # добавляем пользователя (лучше без собаки и домена - незнамо почему :( ) saslpasswd2 -c test # рестартим /etc/init.d/postfix restart /etc/init.d/saslauthd restart
После всех этих манипуляций должно работать...
Полезняшки...
mailq - Просмотр очереди сообщений.
postsuper -d ALL - Очистка ВСЕЙ очереди.
postsuper -d 252D413870A - Удаление только сообщения с id 252D413870A
pflogsumm -d today /var/log/mail.log|less - Анализ лога с показом статистики